package main

import (
	"os"
	"fmt"
)

// go run echo2.go 1 2 3 4
func main(){

	// 赋值的几种方式
	//ss := "" // 是一条短变量声明，最简洁，但只能用在函数内部，而不能用于包变量
	//var x string // 第二种形式依赖于字符串的默认初始化零值机制，被初始化为""
	//var y = "" // 第三种形式用得很少，除非同时声明多个变量
	//var z string = "" // 第四种形式显式地标明变量的类型，当变量类型与初值类型相同时，类型冗余，但如果两者类型不同，变量类型就必须了

	s,sep := ""," "

	//  range产生一对值；索引以及在该索引处的元素值
	// Go语言中这种情况的解决方法是用空标识符（blank identifier）， 
	//即_（也就是下划线）。空标识符可用于在任何语法需要变量名但程序逻辑不需要的时候（如：在循环里）丢弃不需要的循环索引，并保留元素值
	for _,arg := range os.Args[1:] {
		s += arg + sep
		//sep = " "
	}

	fmt.Println(s)
}